import pandas as pd
from matplotlib import pyplot as plt
import matplotlib.ticker as ticker

# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']

# 1. 导入数据，并计算各个岗位的个数，存入列表job_num_1中
job_list = ["算法", "软件", "前端", "人工智能", "数据", "Android", "Java", "安卓", "运维", "图像"]
job_num_1 = []  # 存放每种岗位的个数
for job in job_list:
    print("正在计算\"{}\"岗位的数量".format(job))
    input_file = "E:\\pythonstudy\\pythonProject1\\data4\\data4_3_classify_job\\{}.xlsx".format(job)
    df = pd.read_excel(input_file)
    df = df.drop_duplicates(subset=["company_name"])  # 去除相同公司
    num_1 = len(df)
    print(num_1)
    job_num_1.append(num_1)

job_num_2 = []  # 存放每个岗位占比

# 2. 计算每个岗位占比，存入列表job_num_2中
total = sum(job_num_1)  # 所有岗位数量和
for x in job_num_1:
    num_3 = round(x / total, 2)  # 计算占比，保留小数点后2位
    job_num_2.append(num_3)

# 3. 将工作岗位和数量占比存放一个pandas数据中
data_new = pd.DataFrame({
    "工作岗位": job_list,
    "数量占比": job_num_2
})

# 4. 数量占比降序排列，并重置索引
data_new = data_new.sort_values(by="数量占比", ascending=True)
data_new.reset_index(drop=True, inplace=True)

print(data_new)

# 5. 显示饼图
plt.pie(data_new["数量占比"], labels=data_new["工作岗位"], autopct='%1.0f%%', startangle=0)
# 数据，标签，小数点后保留位数，第一个数据显示的起始位置（0 - 360度）

# 6. 图标的显示配置和保存
plt.title("各种岗位占比图")
plt.tight_layout()
plt.savefig('./picture/5 - 5.各种岗位占比图.png')
plt.show()